'''
 * @ author     ：廖传港
 * @ date       ：Created in 2020/12/4 19:03
 * @ description：
 * @ modified By：
 * @ ersion     : 
 * @File        : experiment.py 
'''


# -*- coding: utf-8 -*-
#
# h, w = 50,100
#
# # 对于长宽不相等的图片，找到最长的一边
# # longest_edge = max(h, w)
# shortest_edge = min(h, w)
# print(shortest_edge)
# # 计算短边需要增加多上像素宽度使其与长边等长
# if h > shortest_edge:
#     dh = shortest_edge - h
#     top = dh // 2
#     bottom = dh - top
#     print(bottom)
# elif w > shortest_edge:
#     dw = w - shortest_edge
#     left = dw // 2
#     right = dw - left
#     print(right)
# else:
#     pass


# # 获取图像尺寸
# h, w = 200,400
#
# # 对于长宽不相等的图片，找到最长的一边
# longest_edge = max(h, w)
# # longest_edge = max(h, w)
#
# # 计算短边需要增加多上像素宽度使其与长边等长
# if h < longest_edge:
#     dh = longest_edge - h
#     top = dh // 2
#     bottom = dh - top
#     print(bottom)
# elif w < longest_edge:
#     dw = longest_edge - w
#     left = dw // 2
#     right = dw - left
#     print(right)
#
# else:
#     pass


# import cv2
#
# img = cv2.imread("D:/picture/p/s.jpg")
#
# # 裁剪为300x300像素
# img = img[0:300,0:300]
# cv2.imshow("img",img)
# cv2.waitKey()

#
# #该文件是对图片做预处理，主要有resize_image()函数和灰度化
# import os
# import cv2
# import numpy as np
#
# IMAGE_SIZE = 100
#
# def resize_image(image, height=IMAGE_SIZE, width=IMAGE_SIZE):
#     top, bottom, left, right = (0, 0, 0, 0)
#
#     h, w, _= image.shape
#
#     shortest_edge = max(h, w)
#     if h > shortest_edge:
#         dh = h - shortest_edge
#         top = dh // 2
#         bottom = dh - top
#     elif w > shortest_edge:
#         dw = w - shortest_edge
#         left = dw // 2
#         righ = dw - left
#     else:
#         pass
#
#     BLACK = [0, 0, 0]
#
#     constant = cv2.copyMakeBorder(image, top, bottom, left, right, cv2.BORDER_CONSTANT, value=BLACK)
#
#     return cv2.resize(constant, (height, width))
#
#
# if __name__ == '__main__':
#     path_name1 = "C:/Users/LCG/Desktop/test/"#这个为你想要预处理文件的路径
#     i = 0
#     for dir_item in os.listdir(path_name1):
#         full_path = os.path.abspath(os.path.join(path_name1, dir_item))
#         i += 1
#         image = cv2.imread(full_path)       #读取出照片
#         image = resize_image(image)         #将图片大小转为64*64
#         image = cv2.cvtColor(image, cv2.COLOR_RGB2GRAY)     #将图片转为灰度图
#         cv2.imwrite(full_path,image)



# import numpy as np
# import matplotlib.pyplot as plt
#
# x = np.arange(-10, 10, 0.001)
# y = 1 / (1 + np.exp(-x))
# plt.plot(x,y)
# plt.suptitle(r'$y=\frac{1}{1+e^{-x}}$', fontsize=20)
# plt.grid(color='gray')
# plt.grid(linewidth='1')
# plt.grid(linestyle='--')
#
# plt.show()

#
# import numpy as np
# import matplotlib.pyplot as plt
#
# x = np.arange(-10, 10, 0.001)
# y = max(0,x)
# plt.plot(x,y)
# plt.suptitle(r'$y=\frac{1}{1+e^{-x}}$', fontsize=20)
# plt.grid(color='gray')
# plt.grid(linewidth='1')
# plt.grid(linestyle='--')
#
# plt.show()

'''

for i in range(1, 10):
    alpha = i
    beta = alpha * 10
    x = np.arange(-4, 4, 0.001)
    y = (1 - np.exp(-x * alpha)) / (1 + np.exp(-x * beta))
    plt.subplot(3, 3, i)
    plt.plot(x, y, label=r'$\alpha={0}$'.format(alpha))
    plt.plot(x, y, label=r'$\beta={0}$'.format(beta))
    plt.legend(loc=0)

plt.suptitle(r'$\frac{1-e^{-x*\alpha}}{1+e^{-x*\beta}}$', fontsize=20)
plt.show()
'''
# import numpy as np
# import matplotlib.pyplot as plt
#
# fig = plt.figure(figsize=(6, 4))
# ax = fig.add_subplot(111)
# x = np.arange(-10, 10)
# y = np.where(x < 0, 0, x)  # 满足条件(condition)，输出x，不满足输出y
# plt.xlim(-11, 11)
# plt.ylim(-11, 11)
# ax = plt.gca()  # get current axis 获得坐标轴对象
# ax.spines['right'].set_color('none')
# ax.spines['top'].set_color('none')  # 将右边 上边的两条边颜色设置为空 其实就相当于抹掉这两条边
# ax.xaxis.set_ticks_position('bottom')
# ax.yaxis.set_ticks_position('left')  # 指定下边的边作为 x 轴   指定左边的边为 y 轴
# ax.spines['bottom'].set_position(('data', 0))  # 指定 data  设置的bottom(也就是指定的x轴)绑定到y轴的0这个点上
# ax.spines['left'].set_position(('data', 0))
#
# plt.plot(x, y, label='ReLU', linestyle="-", color="darkviolet")  # label为标签
# plt.legend(['ReLU'])
# plt.savefig('ReLU.png', dpi=500)  # 指定分辨
# plt.show()
#
# import numpy as np
# import matplotlib.pyplot as plt
#
# fig = plt.figure(figsize=(6, 4))
# ax = fig.add_subplot(111)
# x = np.arange(-5, 5)
# # y = np.where(x < 0, 0, x)  # 满足条件(condition)，输出x，不满足输出y
# y = 1 / (1 + np.exp(-x))
# plt.xlim(-3, 3)
# plt.ylim(-3, 3)
# ax = plt.gca()  # get current axis 获得坐标轴对象
# ax.spines['right'].set_color('none')
# ax.spines['top'].set_color('none')  # 将右边 上边的两条边颜色设置为空 其实就相当于抹掉这两条边
# ax.xaxis.set_ticks_position('bottom')
# ax.yaxis.set_ticks_position('left')  # 指定下边的边作为 x 轴   指定左边的边为 y 轴
# ax.spines['bottom'].set_position(('data', 0))  # 指定 data  设置的bottom(也就是指定的x轴)绑定到y轴的0这个点上
# ax.spines['left'].set_position(('data', 0))
#
# plt.plot(x, y, label='ReLU', linestyle="-", color="darkviolet")  # label为标签
# plt.legend(['ReLU'])
# plt.savefig('ReLU.png', dpi=500)  # 指定分辨
# plt.show()


"""python 基础绘图"""
import matplotlib.pyplot as plt

#1 基础绘图
#第1步：定义x和y坐标轴上的点   x坐标轴上点的数值
# x=[1, 2, 3, 4]
# #y坐标轴上点的数值
# y=[1, 4, 9, 16]
#第2步：使用plot绘制线条第1个参数是x的坐标值，第2个参数是y的坐标值
# plt.plot(x,y)
#第3步：显示图形
# plt.show()

"""多张图片一同输出"""
# #创建画板1
# fig = plt.figure(1) #如果不传入参数默认画板1
# #第2步创建画纸，并选择画纸1
# ax1=plt.subplot(2,1,1)
# #在画纸1上绘图
# plt.plot([1, 2, 3])
# #选择画纸2
# ax2=plt.subplot(2,1,2)
# #在画纸2上绘图
# plt.plot([4, 5, 6])
# #显示图像
# plt.show()
#


# #2 定义绘图属性
# '''
# color：线条颜色，值r表示红色（red）
# marker：点的形状，值o表示点为圆圈标记（circle marker）
# linestyle：线条的形状，值dashed表示用虚线连接各点
# '''
# plt.plot(x, y, color='r',marker='o',linestyle='dashed')
# # plt.plot(x, y, 'ro')
# '''
# axis：坐标轴范围
# 语法为axis[xmin, xmax, ymin, ymax]，
# 也就是axis[x轴最小值, x轴最大值, y轴最小值, y轴最大值]
# '''
# plt.axis([0, 6, 0, 20])
# plt.show()
# #
# #
#3 给图片提阿甲注释和标题等


#
#
#
#
#
#
#
import matplotlib.pyplot as plt
#多图绘制
#导入包numpy
import numpy as np


# from pylab import *
# mpl.rcParams['font.sans-serif'] = ['SimHei']
#
# #定义一维数组
# t = np.arange(0, 5, 0.2)
#
# x1=y1=t
# #线条2
# x2=x1
# y2=t**2
# #线条3
# x3=x1
# y3=t**3
# #第2步：使用plot绘制线条 第1个参数是x的坐标值，第2个参数是y的坐标值
# plt.plot(x1,y1,x2,y2,x3,y3)
# #添加文本 #x轴文本
# plt.xlabel("x坐标轴")
# #y轴文本
# plt.ylabel("x坐标轴")
# #标题
# plt.title("标题")
# #添加注释 参数名xy：箭头注释中箭头所在位置，参数名xytext：注释文本所在位置，
# #arrowprops在xy和xytext之间绘制箭头, shrink表示注释点与注释文本之间的图标距离
#
# plt.annotate("loss", xy=(2,5), xytext=(2, 10),
#             arrowprops=dict(facecolor='black', shrink=0.01),
#             )
#
# #第3步：显示图形
# plt.show()

# from pylab import *
# mpl.rcParams['font.sans-serif'] = ['SimHei']
#
# #定义一维数组
# t = np.arange(0, 5, 0.2)





























import numpy as np  # 加载数学库用于函数描述
import matplotlib
import matplotlib.pyplot as plt
from matplotlib import style

matplotlib.rcParams['text.usetex'] = True  # 开启Latex风格
plt.figure(figsize=(10, 10), dpi=70)  # 设置图像大小
# style.use('ggplot')  # 加载'ggplot'风格
# f, ax = plt.subplots(1, 3)  # 设置子图
